In order to provide a realistic simulation it is desirable to generate and present imagery at the highest possible resolution and greatest possible framerate. A simulator device typically includes at least one primary processor and a primary memory in which portions of the simulator application execute, as well as one or more graphics modules which may be coupled to the primary processor via a high-speed bus. A graphics module is a relatively special purpose device designed to render scenes for visualization, or display, to a user. An example of a graphics module is a Peripheral Component Interconnect Express (PCI-E) graphics card. Interface libraries, such as Microsoft® DirectX® and OpenGL® have been developed to interface with graphics modules to eliminate the need for an application developer to write a separate version of an application for each different graphics module.
Each of multiple applications that execute on a primary processor may interact with the graphics module to facilitate the generation of imagery associated with the respective application. The interface libraries, therefore, typically impose constraints on the sharing of the graphics module by multiple applications, in part to reduce a likelihood of causing a system fault, or other unintended consequence, which may be brought about by arbitrary and uncoordinated use of a graphics module by multiple applications.
Designing and manufacturing a robust simulation system is complex, and not practical for the vast majority of users of simulation systems. It is common, therefore, for a first entity to acquire a simulation system from a second entity that specializes in the design and manufacture of simulation systems. The first entity may wish to incorporate unique or custom imagery associated with the first entity into the stock imagery which accompanies the 3rd party simulation system. By way of non-limiting example, a shipping company that utilizes a particular truck manufacturer may desire to incorporate imagery associated with the dashboard of such trucks into a truck simulator purchased or licensed from a second company. The truck simulator may be shipped with stock imagery of a truck dashboard that is different from the trucks used by the first company. Such imagery may need to be continually updated during the simulation, such as imagery of a speedometer during the operation of a truck. However, it is common for simulation systems to be sold or licensed in a manner which does not lend itself to modification or integration of customized imagery.
Unfortunately, the constraints imposed by interface libraries can make it difficult, impractical, or impossible to dynamically incorporate imagery into an existing simulation system without modifying the actual simulation system. Accordingly, there is a need for mechanisms for facilitating the run-time integration of external imagery into a simulation system.